package com.proyecto.personas.modelo.seguridad;


import com.proyecto.core.Utilidades.ObtenerFecha;
import com.proyecto.core.Utilidades.UtilReflect;
import com.proyecto.seguridad.modelo.dto.SegUsuarios;

public class PojoSeguridad {
	SegUsuarios segUsuarios;

	Object pojo;

	public PojoSeguridad(Object pojo, SegUsuarios su) {
		this.pojo = pojo;
		this.segUsuarios = su;
	}

	public void llenarPojoSeguridadModoIncluir() {

		try {
			Class tipoParametroString1[] = new Class[1];
			tipoParametroString1[0] = String.class;

			// auditfechacreacion y auditfechacambio
			String fecha = ObtenerFecha.ObtenerFechaSistemaYYYYMMDD();
			UtilReflect.invocarMetodoSet(pojo, "auditfechacreacion",
					tipoParametroString1, fecha);
			UtilReflect.invocarMetodoSet(pojo, "auditfechacambio",
					tipoParametroString1, fecha);
			// audithoracreacion y audithoracambio
			String hora = ObtenerFecha.ObtenerHoraSistema();
			UtilReflect.invocarMetodoSet(pojo, "audithoracreacion",
					tipoParametroString1, hora);
			UtilReflect.invocarMetodoSet(pojo, "audithoracambio",
					tipoParametroString1, hora);
			// auditcodusuario
			String usuario = this.segUsuarios.getId().getUsuariocodigo();
			UtilReflect.invocarMetodoSet(pojo, "auditcodusuario",
					tipoParametroString1, usuario);
			// auditcodsupervisor
			UtilReflect.invocarMetodoSet(pojo, "auditcodsupervisor",
					tipoParametroString1, usuario);
			// 	campousuariochar_1
			String ip = this.segUsuarios.getAuditdirip();
			//System.out.println("PojoSeguridad.this.segUsuarios.getAuditdirip()-->  " + ip);
			String mac = this.segUsuarios.getAuditdirmac();
			//System.out.println("PojoSeguridad.this.segUsuarios.getAuditdirmac()-->  " + mac);

			UtilReflect.invocarMetodoSet(pojo, "auditdirip",tipoParametroString1, ip);

			UtilReflect.invocarMetodoSet(pojo, "auditdirmac",tipoParametroString1, mac);
			
			if ("ciaOpr no es estandart".equals(pojo.getClass().getSimpleName())) {
				//System.out.println("es n estandart");
				//String ciaOpr = this.segUsuarios.getId().getCiaopr();
				//UtilReflect.invocarMetodoSet(pojo,"id.IeNivelEducativo.id.ciaopr", 
				//		tipoParametroString1,ciaOpr);
			} else {
				String ciaOpr = this.segUsuarios.getId().getCiaopr();
				UtilReflect.invocarMetodoSet(pojo, "id.ciaopr",
						tipoParametroString1, ciaOpr);
			}

		} catch (Exception e) {
			// TODO Auto-generated catch block
//			e.printStackTrace();
		}

	}

	public void llenarPojoSeguridadModoModificar() {

		try {

			Class tipoParametroString1[] = new Class[1];
			tipoParametroString1[0] = String.class;
			//auditfechacambio
			String fecha = ObtenerFecha.ObtenerFechaSistemaYYYYMMDD();
			UtilReflect.invocarMetodoSet(pojo, "auditfechacambio",
					tipoParametroString1, fecha);
			//System.out.println("LUEGO DE LAS FECHAS DE AUDITORIA..");
			//audithoracambio
			String hora = ObtenerFecha.ObtenerHoraSistema();
			UtilReflect.invocarMetodoSet(pojo, "audithoracambio",
					tipoParametroString1, hora);			
			// auditcodusuario
			String usuario = this.segUsuarios.getId().getUsuariocodigo();
			UtilReflect.invocarMetodoSet(pojo, "auditcodusuario",
					tipoParametroString1, usuario);	

			// 	
			String ip = this.segUsuarios.getAuditdirip();
			//System.out.println("PojoSeguridad.this.segUsuarios.getAuditdirip()-->  " + ip);
			String mac = this.segUsuarios.getAuditdirmac();
			//System.out.println("PojoSeguridad.this.segUsuarios.getAuditdirmac()-->  " + mac);

			UtilReflect.invocarMetodoSet(pojo, "auditdirip",tipoParametroString1, ip);
			
			UtilReflect.invocarMetodoSet(pojo, "auditdirmac",tipoParametroString1, mac);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public Object getPojo() {
		return pojo;
	}

	public void setPojo(Object pojo) {
		this.pojo = pojo;
	}

	public SegUsuarios getSegUsuarios() {
		return segUsuarios;
	}

	public void setSegUsuarios(SegUsuarios segUsuarios) {
		this.segUsuarios = segUsuarios;
	}

}